package com.brightgenerous.niconama05.anime.product;

import com.brightgenerous.niconama05.anime.Anime;
import com.brightgenerous.niconama05.anime.Heroine;
import com.brightgenerous.niconama05.anime.Interviewer;

/**
 * ゆるゆりクラス
 * 
 * @author brigen
 */
public class Yuruyuri implements Anime {

	/**
	 * コンストラクタ
	 */
	protected Yuruyuri() {
	}

	/**
	 * インタビュアーを受け入れる
	 *
	 * @param x_interviewer インタビュアー
	 */
	@Override
	public void accept(Interviewer x_interviewer) {
		x_interviewer.interview(this);
	}

	/**
	 * タイトルを取得する
	 * 
	 * @return タイトル
	 */
	@Override
	public String getTitle() {
		return "ゆるゆり";
	}

	/**
	 * 概要を取得する
	 *
	 * @return 概要
	 */
	@Override
	public String getDescription() {
		return "「七森中のごらく部」";
	}

	/** キャラクター あかり */
	private final Heroine m_akari = new Heroine("赤座 あかり", "三上枝織", "http://userdisk.webry.biglobe.ne.jp/005/751/74/N000/000/003/131290719095113119964_akarinn.jpg");

	/** キャラクター 京子 */
	private final Heroine m_kyoko = new Heroine("歳納 京子", "大坪由佳", "http://kentana0.blog.so-net.ne.jp/_images/blog/_d7b/kentana0/E6ADB3E7B48DE4BAACE5AD90EFBC88E381A8E38197E381AEE3818620E3818DE38287E38186E38193EFBC8910-3b9f4.jpg");

	/** キャラクター 結衣 */
	private final Heroine m_yui = new Heroine("船見 結衣", "津田美波", "http://dionysus-room.blog.so-net.ne.jp/_images/blog/_997/dionysus-room/035-a6728.jpg");

	/** キャラクター ちなつ */
	private final Heroine m_chinatsu = new Heroine("吉川 ちなつ", "大久保瑠美", "http://livedoor.blogimg.jp/zakuzaku911/imgs/b/3/b30e727f.jpg");

	/**
	 * キャラクター あかりを取得する
	 *
	 * @return キャラクター あかり
	 */
	public Heroine getAkari() {
		return m_akari;
	}

	/**
	 * キャラクター 京子を取得する
	 *
	 * @return キャラクター 京子
	 */
	public Heroine getKyoko() {
		return m_kyoko;
	}

	/**
	 * キャラクター 結衣を取得する
	 *
	 * @return キャラクター 結衣
	 */
	public Heroine getYui() {
		return m_yui;
	}

	/**
	 * キャラクター ちなつを取得する
	 *
	 * @return キャラクター ちなつ
	 */
	public Heroine getChinatsu() {
		return m_chinatsu;
	}

	/** 改行文字 */
	private static final String LINE_SEPARATOR = System.getProperty("line.separator");

	/**
	 * toString.
	 * 
	 * return 文字列
	 */
	@Override
	public String toString() {
		StringBuilder sb = new StringBuilder();
		sb.append(getTitle()).append(LINE_SEPARATOR);
		sb.append("--- CHARACTERS ---").append(LINE_SEPARATOR);
		sb.append(heroineToString(getAkari())).append(LINE_SEPARATOR);
		sb.append(heroineToString(getKyoko())).append(LINE_SEPARATOR);
		sb.append(heroineToString(getYui())).append(LINE_SEPARATOR);
		sb.append(heroineToString(getChinatsu())).append(LINE_SEPARATOR);
		sb.append("------------------").append(LINE_SEPARATOR);

		return sb.toString();
	}

	/**
	 * キャラクターから一行紹介文を生成する
	 *
	 * @param x_heroine キャラクタ―
	 * @return 一行紹介文
	 */
	private static String heroineToString(Heroine x_heroine) {
		return x_heroine.getName() + "(CV:" + x_heroine.getActor() + ")";
	}
}
